** This Do File replicates all analyses in: Kollberg, Lauderdale, Wratil (2025). "Winning Votes and Changing Minds:  Do Populist Arguments Affect Candidate Evaluations and Issue Preferences?" BjPolS. **
** The corresponding pre-registration can be accessed via: https://osf.io/u726q/ **

ssc install coefplot

** load data from experiment **
import delimited "cleaned_experiment_300125.csv"

* standardize outcome variable *

egen z_post_issue = std(post_issue)
egen z_post_cand = std(post_cand)

**# Pre-registered Models for Outcome 1: Changes in Issue Preferences #**

* M1: Equation 1 in the PAP,  Appendix Table 6, Left Panel Figure 2 *

jackknife: regress z_post_issue c.pre_cand#c.direction direction pre_issue, cluster (issue)
 
estimates store m1

margins, at(c.pre_cand=(-2 -1 0 1 2) direction=(1))

marginsplot, title("Changes in Issue Preferences conditional on Candidate Support", size(medium)) xtitle(Pre-Treatment Candidate Support) recast(line) recastci(rarea) ylab(, nogrid) xlab(, nogrid)

marginsplot, ///
    title("Changes in Issue Preferences conditional on Candidate Support", ///
        size(medium) margin(medium) color(black)) ///
    xtitle("Pre-Treatment Candidate Support", size(medium)) ///
    ytitle("Predicted Change in Preferences", size(medsmall)) ///
    recast(line) ///
    recastci(rarea) ///
    plot1opts(lwidth(medthick) lcolor(black)) ///
    ci1opts(color(gs13%50)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(medsmall)) ///
    xlabel(, nogrid labsize(medsmall)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
    legend(off)

graph export "figures/m1_graph.jpg", ///
    width(2000) replace quality(100)
	
esttab m1, b(%5.3f) se(3) r2(3) ar2(3) coeflabels(c.pre_cand#c.direction "Candidate Support t_0 * Direction" direction "Argument Direction" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model1.rtf", replace

* M2: Equation 2 in the PAP, Appendix Table 7, Right Panel Figure 2 *

jackknife: regress z_post_issue c.att_strength#c.direction direction pre_issue, cluster (issue)

estimates store m2

margins, at(att_strength=(-1 0 1) direction=(1))

marginsplot, ///
    title("Changes in Issue Preferences conditional on Attitude Strength", ///
        size(medium) margin(medium) color(black)) ///
    xtitle("Attitude Strength", size(medsmall)) ///
    ytitle("Predicted Change in Preferences", size(medsmall)) ///
    recast(line) ///
    recastci(rarea) ///
    plot1opts(lwidth(medthick) lcolor(black)) ///
    ci1opts(color(gs13%50)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    xlabel(-1 "Weak" 0 "Medium" 1 "Strong", nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
    legend(off)

graph export "figures/m2_graph.jpg", ///
    width(2000) replace quality(100)

esttab m2,  b(%5.3f) se r2 ar2 coeflabels(c.att_strength#c.direction "Attitude Strength * Direction" direction "Argument Direction" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model2.rtf", replace

* M3: Equation 3 in the PAP, Table 4 in the Paper*

jackknife: regress z_post_issue c.treatment#c.direction direction pre_issue, cluster (issue)
estimates store m3

esttab m3,  b(%5.3f) se r2 ar2 coeflabels(c.treatment#c.direction "Treatment * Direction" direction "Argument Direction" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model3.rtf", replace


*M4: Equation 4 in the PAP, Table 8 in the Appendix, Left Panel Figure 3 *

jackknife: regress z_post_issue c.treatment#c.direction c.direction c.pre_cand#c.direction c.pre_cand#c.treatment#c.direction pre_issue, cluster (issue)
 estimates store m4

esttab m4, b(%5.3f) se r2 ar2 coeflabels(c.treatment#c.direction "Treatment * Direction" direction "Argument Direction" c.pre_cand#c.direction "Candidate Support t_0 * Argument Direction"  c.pre_cand#c.treatment#c.direction "Candidate Support t_0 * Treatment * Direction" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model4.rtf", replace

margins, dydx(treatment) at(c.pre_cand=(-2 -1 0 1 2) direction=(1))

marginsplot, ///
    title("Effect of Populist Arguments across Pre-Treatment Candidate Support", ///
        size(medium) margin(medium) color(black)) ///
    ytitle("Marginal Effect of Populist Arguments", size(medsmall)) ///
    xtitle("Pre-Treatment Candidate Support", size(medsmall)) ///
    recast(line) ///
    recastci(rarea) ///
    plot1opts(lwidth(medthick) lcolor(black)) ///
    ci1opts(color(gs13%50)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    xlabel(, nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
    legend(off)

graph export "figures/m4_graph.jpg", ///
    width(2000) replace quality(100)
	
	
* M5: Equation 5 in the PAP, Table 10 in the Appendix*

jackknife: regress z_post_issue c.treatment#c.direction c.direction c.att_strength#c.direction c.att_strength#c.treatment#c.direction pre_issue, cluster (issue)

estimates store m5

esttab m5,b(%5.3f) se r2 ar2 coeflabels( c.treatment#c.direction "Treatment * Direction" direction "Argument Direction" c.att_strength#c.direction "Attitude Strength * Argument Direction"  c.att_strength#c.treatment#c.direction "Attitude Strength * Treatment * Direction" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model5_151024.rtf", replace


*Not pre-registered, requested by reviewers, Appendix Table 22 and Figure 10*

jackknife: regress z_post_issue c.treatment#c.direction c.direction c.treatment pre_issue, cluster (issue)
estimates store mdirect

esttab mdirect,b(%5.3f) se r2 ar2 coeflabels( c.treatment#c.direction "Treatment * Direction" direction "Argument Direction" c.treatment "Treatment" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/modeldirect.rtf", replace

margins, at(direction=(-1 1) treatment=(0 1))

marginsplot, ///
    title("Populist and Non-Populist Arguments across Argument Directions", ///
        size(medium) margin(medium) color(black)) ///
    ytitle("Predicted Change in Preferences", size(medsmall)) ///
    xtitle("Argument Direction", size(medsmall)) ///
    recast(scatter) ///
    plot1opts(msymbol(circle) msize(medium) mcolor(black)) ///
    plot2opts(msymbol(circle) msize(medium) mcolor(gray)) ///
    ci1opts(color(gs13%50)) ///
    ci2opts(color(gs13%50)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    xlabel(-1 "Negative" 1 "Positive", nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
    legend(order(3 "Non-Populist Argument" 4 "Populist Argument") ///
        size(small) region(color(none)))

graph export "figures/mdirect_graph.jpg", ///
    width(2000) replace quality(100)

	
**# Pre-registered Analyses for Outcome 2: Changes in Candidate Support#**

* M6: Equation 6 in the PAP, Table 14 in the Appendix, Left Panel of Figure 4*

jackknife: regress z_post_cand c.direction#c.pre_issue pre_cand, cluster(issue)

estimates store m6

margins, at(c.pre_issue =(-2 -1 0 1 2) direction=(-1 1))

marginsplot, ///
    title("Changes in Candidate Support conditional on Preference Alignment", ///
        size(medium) margin(medium) color(black)) ///
    xtitle("Issue Preferences", size(medsmall)) ///
    ytitle("Predicted Change in Candidate Support", size(medsmall)) ///
    recast(line) ///
    recastci(rarea) ///
    plot1opts(lwidth(medthick) lcolor(black)) ///
    plot2opts(lwidth(medthick) lcolor(gray)) ///
    ci1opts(color(gs13%50)) ///
    ci2opts(color(gs13%50)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    xlabel(, nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
    legend(order(3 "Argument Direction -1" 4 "Argument Direction 1") ///
        size(small) position(6) rows(1) region(color(none)))

graph export "figures/m6_graph.jpg", ///
    width(2000) replace quality(100)

esttab m6,b(%5.3f) se r2 ar2 coeflabels(pre_cand "Candidate Evaluation t_0" c.direction#c.pre_issue "Alignment" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/model6.rtf", replace

* M7: Equation 7 in the PAP, Table 15 in the Appendix, Right Panel of Figure 4 *

jackknife: regress z_post_cand c.direction#c.pre_issue c.att_strength c.att_strength#c.direction#c.pre_issue pre_cand,cluster (issue)

estimates store m7

generate align = direction * pre_issue

jackknife: regress z_post_cand align att_strength c.att_strength#c.align pre_cand, cluster (issue)

margins, at(c.align =(-2 -1 0 1 2) c.att_strength  =(-1 0 1))

marginsplot, ///
    title("Changes in Candidate Support conditional on Attitude Strength", ///
        size(medium) margin(medium) color(black)) ///
    xtitle("Preference Alignment", size(medsmall)) ///
    ytitle("Predicted Change in Candidate Support", size(medsmall)) ///
    recast(line) ///
    recastci(rarea) ///
    plot1opts(lwidth(medthick) lcolor(black)) ///
    plot2opts(lwidth(medthick) lcolor(gs10)) ///
	plot3opts(lwidth(medthick) lcolor(gs4)) ///
    ci1opts(color(gs6%30)) ///
    ci2opts(color(gs6%30)) ///
	ci3opts(color(gs6%10)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    xlabel(, nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
    legend(order(4 "Weak" 5 "Medium" 6 "Strong") ///
        size(small) position(6)rows(1) region(color(none)))

graph export "figures/m7_graph.jpg", ///
    width(2000) replace quality(100)

esttab m7,b(%5.3f) se r2 ar2 coeflabels(pre_cand "Candidate Evaluation t_0" c.direction#c.pre_issue "Alignment" c.att_strength "Attitue Strength" c.att_strength#c.direction#c.pre_issue "Attitude Strength * Alignment" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/model7.rtf", replace

* M8: Equation 8 in the PAP, Table 5 in the Paper*

jackknife: regress z_post_cand treatment pre_cand, cluster (issue)

estimates store m8

esttab m8,b(%5.3f) se r2 ar2 coeflabels( treatment "Treatment" pre_cand "Candidate Evaluation t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/model8.rtf", replace

* M9: Equation 9 in the PAP, Table 16 in the Appendix*

jackknife: regress z_post_cand treatment c.direction#c.pre_issue  c.treatment#c.direction#c.pre_issue pre_cand, cluster (issue)

estimates store m9

esttab m9,b(%5.3f) se r2 ar2 coeflabels( treatment "Treatment" c.direction#c.pre_issue "Alignment" c.treatment#c.direction#c.pre_issue "Tratment * Alignment" pre_cand "Candidate Evaluation t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/model9.rtf", replace

* M10: Equation 10 in the PAP, table 17 in the Appendix*

jackknife: regress z_post_cand treatment att_strength c.direction#c.pre_issue c.treatment#c.att_strength c.treatment#c.direction#c.pre_issue c.att_strength#c.direction#c.pre_issue c.treatment#c.att_strength#c.direction#c.pre_issue pre_cand, cluster(issue)

estimates store m10

esttab m10,b(%5.3f) se r2 ar2 coeflabels( treatment "Treatment" att_strength "Attitude Strength" c.direction#c.pre_issue "Alignment"  c.treatment#c.att_strength "Treatment * Attitude Strength" c.treatment#c.direction#c.pre_issue "Tratment * Alignment" c.att_strength#c.direction#c.pre_issue "Attitude Strength * Alignment" c.treatment#c.att_strength#c.direction#c.pre_issue "Treatment * Attitude Strength * Alignment" pre_cand "Candidate Evaluation t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/model10.rtf", replace


*Alternative specification, not pre-registered, Table 9 in the Appendix*
jackknife: regress z_post_cand treatment pre_cand c.treatment#c.pre_cand, cluster (issue)

estimates store mcandidate

esttab mcandidate,b(%5.3f) se r2 ar2 coeflabels( treatment "Treatment" pre_cand "Candidate Evaluation t_0" c.treatment#c.pre_cand "Treatment * Candidate Evaluation t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/modelcandidate.rtf", replace


** Pre-registered Heterogeneity by Populist Attitudes **

* Model 11 in the PAP, Table 12 in the Appendix, Right Panel Figure 3 *

jackknife: regress z_post_issue c.treatment#c.direction  c.pop_att#c.direction c.treatment#c.pop_att#c.direction pre_issue, cluster(issue)

estimates store m11

esttab m11,b(%5.3f) se r2 ar2 coeflabels(  c.treatment#c.direction "Treatment * Direction" c.pop_att#c.direction "Populist Attitudes * Direction"  c.treatment#c.pop_att#c.direction "Treatment * Direction  * Populist Attitudes" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model11.rtf", replace

margins, dydx(treatment) at(c.pop_att=(1 2 3 4 5) direction=(1))

marginsplot, ///
    title("Effect of Populist Arguments across Populist Attitudes", ///
        size(medium) margin(medium) color(black)) ///
    ytitle("Marginal Effect of Populist Arguments", size(medsmall)) ///
    xtitle("Populist Attitudes", size(medsmall)) ///
    recast(line) ///
    recastci(rarea) ///
    plot1opts(lwidth(medthick) lcolor(black)) ///
    ci1opts(color(gs13%50)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    xlabel(, nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
    legend(off)

graph export "figures/m11_graph.jpg", ///
    width(2000) replace quality(100)
	

* Model 12 in the PAP, Table 19 in the Appendix, Figure 5 in the Paper *

jackknife: regress z_post_cand treatment pop_att c.treatment#c.pop_att pre_cand, cluster(issue)

estimates store m12

esttab m12,b(%5.3f) se r2 ar2 coeflabels(treatment "Treatment" pop_att "Populist Attitudes"  c.treatment#c.pop_att "Treatment * Populist Attitudes" pre_cand "Candidate Evaluation t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/model12.rtf", replace

margins, dydx(treatment) at(c.pop_att=(1 2 3 4 5))
marginsplot, title("Effect of Populist Arguments across Populist Attitudes", size(medium)) ytitle (Treatment Effects) xtitle(Populist Attitudes) recast(line) recastci(rarea) ylab(, nogrid) xlab(, nogrid) yline(0)


marginsplot, ///
    title("Effect of Populist Arguments across Populist Attitudes", ///
        size(medium) margin(medium) color(black)) ///
    ytitle("Marginal Effect of Populist Arguments", size(medsmall)) ///
    xtitle("Populist Attitudes", size(medsmall)) ///
    recast(line) ///
    recastci(rarea) ///
    plot1opts(lwidth(medthick) lcolor(black)) ///
    ci1opts(color(gs13%50)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    xlabel(, nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
    legend(off)

graph export "figures/m12_graph.jpg", ///
    width(2000) replace quality(100)
	

**# Additional Exploratory Analyses That Were Not Pre-Registered#**

* Exploration by Issues, Table 11 and Figure 5 in the Appendix*

regress z_post_issue c.treatment#c.direction c.direction i.issue#c.direction i.issue#c.treatment#c.direction pre_issue
estimates store missues

esttab missues, b(%5.3f) se r2 ar2 coeflabel( c.treatment#c.direction "Treatment * Direction" direction "Direction" 1.issue#c.direction "Knife crimes * direction" 2.issue#c.direction "Foreign Aid (Covid) * Direction" 3.issue#c.direction "Mandatory Vaccines * Direction" 4.issue#c.direction  "Immigration (NHS) * Direction" 5.issue#c.direction  "High-speed rail * Direction" 6.issue#c.direction "Zero hours contracts * Direction"  7.issue#c.direction  "Food subsidies * Direction" 8.issue#c.direction  "Sugar tax * Direction" 9.issue#c.direction  "Subsea cable * Direction" 1.issue#c.direction "Knife crime * Direction" 2.issue#c.treatment#c.direction "Foreign Aid (Covid) * Treatment" 3.issue#c.treatment#c.direction "Mandatory Vaccines * Treatment" 4.issue#c.treatment#c.direction  "Immigration (NHS) * Treatment" 5.issue#c.treatment#c.direction  "High-speed rail * Treatment" 6.issue#c.treatment#c.direction "Zero hours contracts * Treatment"  7.issue#c.treatment#c.direction  "Food subsidies * Treatment" 8.issue#c.treatment#c.direction  "Sugar tax * Treatment" 9.issue#c.treatment#c.direction  "Subsea cable * Treatment") mtitles ("Candidate Support") nogap varwidth (40) modelwidth (25) alignment (c), using "Tables/model_issues.rtf", replace

*find baseline category*
regress z_post_issue ibn.issue#c.direction pre_issue, noconstant

*Baseline is category 3, smallest change in absence of treatment*
regress z_post_issue c.treatment#c.direction c.direction i.issue#c.direction ib3.issue#c.treatment#c.direction pre_issue, noconstant

estimates store missues

margins, dydx(treatment) at(issue = (1(1)9))

marginsplot, ///
    title("Marginal Effects of Populist Arguments for different Issues", ///
        size(medium) margin(medium) color(black)) ///
    ytitle("Effects of Populist Arguments", size(medsmall)) ///
    xtitle("Issues", size(medsmall)) ///
    recast(scatter) ///
    plot1opts(msymbol(circle) msize(medium) mcolor(black)) ///
    ci1opts(color(gs9%90)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
	xlabel(1 "Knife Crimes"  2 "Foreign Aid" 3 "Mandatory Vaccines" 4 "Zero Hour Contracts" 5 "NHS/Immigration" 6 "High-Speed Rail" 7 "Food Subsidies" 8 "Sugar Tax" 9 "Subsea Cable", angle (45))

graph export "figures/missues_prefs_graph.jpg", ///
    width(2000) replace quality(100)


* Exploration by Issues on Candidate Support, Table 18 and Figure 6 in the Appendix *

regress z_post_cand treatment i.issue c.direction#c.pre_issue c.treatment#i.issue c.treatment#c.direction#c.pre_issue i.issue#c.direction#c.pre_issue c.treatment#i.issue#c.direction#c.pre_issue pre_cand

estimates store missues_cand


esttab missues_cand, b(%5.3f) se r2 ar2 coeflabel( treatment "Treatment" c.direction#c.pre_issue "Alignment" 1.issue "Knife crimes" 2.issue "Foreign Aid (Covid)" 3.issue "Mandatory Vaccines" 4.issue  "Immigration (NHS)" 5.issue  "High-speed rail" 6.issue "Zero hours contracts"  7.issue  "Food subsidies" 8.issue  "Sugar tax" 9.issue "Subsea Cable" 1.issue#c.treatment "Knife crimes * Treatment" 2.issue#c.treatment "Foreign Aid (Covid) * Treatment" 3.issue#c.treatment "Mandatory Vaccines * Treatment" 4.issue#c.treatment  "Immigration (NHS) * Treatment" 5.issue#c.treatment  "High-speed rail * Treatment" 6.issue#c.treatment "Zero hours contracts * Treatment"  7.issue#c.treatment  "Food subsidies * Treatment" 8.issue#c.treatment  "Sugar tax * Treatment" 9.issue#c.treatment "Subsea cable * Treatment" c.treatment#c.direction#c.pre_issue "Treatment * Alignment"1.issue#c.direction#c.pre_issue "Knife crimes * Alignment" 2.issue#c.direction#c.pre_issue "Foreign Aid (Covid) * Alignment" 3.issue#c.direction#c.pre_issue "Mandatory Vaccines * Alignment" 4.issue#c.direction#c.pre_issue  "Immigration (NHS) * Alignment" 5.issue#c.direction#c.pre_issue  "High-speed rail * Alignment" 6.issue#c.direction#c.pre_issue "Zero hours contracts * Alignment"  7.issue#c.direction#c.pre_issue  "Food subsidies * Alignment" 8.issue#c.direction#c.pre_issue  "Sugar tax * Alignment" 9.issue#c.direction#c.pre_issue  "Subsea cable * Alignment" 1.issue#c.treatment#c.direction#c.pre_issue "Knife crime * Alignment * Treatment" 2.issue#c.treatment#c.direction#c.pre_issue "Foreign Aid (Covid) * Alignment * Treatment" 3.issue#c.treatment#c.direction#c.pre_issue "Mandatory Vaccines * Alignment * Treatment" 4.issue#c.treatment#c.direction#c.pre_issue  "Immigration (NHS) * Alignment * Treatment" 5.issue#c.treatment#c.direction#c.pre_issue  "High-speed rail * Alignment * Treatment" 6.issue#c.treatment#c.direction#c.pre_issue "Zero hours contracts * Alignment * Treatment"  7.issue#c.treatment#c.direction#c.pre_issue  "Food subsidies * Alignment * Treatment" 8.issue#c.treatment#c.direction#c.pre_issue  "Sugar tax * Alignment * Treatment" 9.issue#c.treatment#c.direction#c.pre_issue  "Subsea cable* Alignment * Treatment" pre_cand "Candidate Evaluations t0" _cons "Intercept") mtitles ("Candidate Support") nogap varwidth (40) modelwidth (25) alignment (c), using "Tables/model_issues_cand.rtf", replace

margins, dydx(treatment) at(issue = (1(1)9))

marginsplot, ///
    title("Marginal Effects of Populist Arguments for different Issues", ///
        size(medium) margin(medium) color(black)) ///
    ytitle("Effects of Populist Arguments", size(medsmall)) ///
    xtitle("Issues", size(medsmall)) ///
    recast(scatter) ///
    plot1opts(msymbol(circle) msize(medium) mcolor(black)) ///
    ci1opts(color(gs9%90)) ///
    yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///
    ylabel(, nogrid labsize(small)) ///
    graphregion(color(white)) ///
    bgcolor(white) ///
	xlabel(1 "Knife Crimes"  2 "Foreign Aid" 3 "Mandatory Vaccines" 4 "Zero Hour Contracts" 5 "NHS/Immigration" 6 "High-Speed Rail" 7 "Food Subsidies" 8 "Sugar Tax" 9 "Subsea Cable", angle (45))

graph export "figures/missues_cands_graph.jpg", ///
    width(2000) replace quality(100)
	
*Balance Tests, Figure 9 in the Appendix*

regress treatment age profile_gender profile_education_level profile_socialgrade_cie  profile_gor voted_ge_2019 pastvote_euref polattention
estimates store balance

coefplot(balance), ///
    keep(age profile_gender profile_education_level profile_socialgrade_cie ///
         profile_gor voted_ge_2019 pastvote_euref polattention) ///
    coeflabel(age = "Age" profile_gender = "Gender" ///
              profile_education_level = "Education" ///
              profile_socialgrade_cie = "Social Grade" ///
              profile_gor = "Region" voted_ge_2019 = "Voter?" ///
              pastvote_euref = "Brexit vote" polattention = "Political Attention") ///
    xline(0) xtitle(Coefficients) ///
    title("Balance Test", color(black)) ///
    mcolor(black) lcolor(black) msymbol(O) ciopts(lcolor(black))


graph export "figures/balance_graph.jpg", ///
    width(2000) replace quality(100)

*Additional Analyses for Populist Attitudes (not-preregisted), Tables 13 and 20 in the Appendix*

jackknife: regress z_post_issue c.treatment#c.direction  c.pop_bat1#c.direction c.treatment#c.pop_bat1#c.direction pre_issue, cluster(issue)

estimates store m11_1

jackknife: regress z_post_issue c.treatment#c.direction  c.pop_bat2#c.direction c.treatment#c.pop_bat2#c.direction pre_issue, cluster(issue)

estimates store m11_2

jackknife: regress z_post_issue c.treatment#c.direction  c.pop_bat3#c.direction c.treatment#c.pop_bat3#c.direction pre_issue, cluster(issue)

estimates store m11_3

esttab m11_1 m11_2 m11_3,b(%5.3f) se r2 ar2 coeflabels( c.treatment#c.direction "Treatment * Direction" c.pop_bat1#c.direction "Pro-People Attitudes * Direction"  c.treatment#c.pop_bat1#c.direction "Treatment * Direction  * Pro-People Attitudes" c.pop_bat2#c.direction "Anti-Elite Attitudes * Direction"  c.treatment#c.pop_bat2#c.direction "Treatment * Direction  * Anti-Elite Attitudes" c.pop_bat3#c.direction "Manichean Worldview * Direction"  c.treatment#c.pop_bat3#c.direction "Treatment * Direction  * Manichean Worldview" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1" "Issue Preferences t_1" "Issue Preferences t_1") modelwidth (15) alignment (c), using "Tables/model_11s.rtf", replace

jackknife: regress z_post_cand treatment pop_bat1 c.treatment#c.pop_bat1 pre_cand, cluster(issue)
estimates store m12_1

jackknife: regress z_post_cand treatment pop_bat2 c.treatment#c.pop_bat2 pre_cand, cluster(issue)
estimates store m12_2

jackknife: regress z_post_cand treatment pop_bat3 c.treatment#c.pop_bat3 pre_cand, cluster(issue)
estimates store m12_3

esttab m12_1 m12_2 m12_3,b(%5.3f) se r2 ar2 coeflabels(treatment "Treatment" pop_bat1 "Pro-People Attitudes" pop_bat2 "Anti-Elite Attitudes" pop_bat3 "Manichean Worldview"  c.treatment#c.pop_bat1 "Treatment * Pro-People Attitudes" c.treatment#c.pop_bat2 "Treatment * Anti-Elite Attitudes" c.treatment#c.pop_bat3 "Treatment * Manichean Worldview" pre_cand "Candidate Evaluation t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1" "Candidate Evaluation t_1" "Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/model_12s.rtf", replace

** Alternative Specificaiton of the Populist Attitudes Measure, Tables 21 and 22 in the Appendix **
gen pop_wutt = min(pop_bat1, pop_bat2, pop_bat3)

jackknife: regress z_post_issue c.treatment#c.direction  c.pop_wutt#c.direction c.treatment#c.pop_wutt#c.direction pre_issue, cluster(issue)
estimates store m11_wutt

jackknife: regress z_post_cand treatment pop_wutt c.treatment#c.pop_wutt pre_cand, cluster(issue)
estimates store m12_wutt

esttab m11_wutt,b(%5.3f) se r2 ar2 coeflabels(c.treatment#c.direction "Treatment * Direction" c.pop_wutt#c.direction "Populist Attitudes (Wuttke et al.) * Direction"  c.treatment#c.pop_wutt#c.direction "Treatment * Direction  * Populist Attitudes (Wuttke et al.)" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model_11wutt.rtf", replace

esttab m12_wutt,b(%5.3f) se r2 ar2 coeflabels(treatment "Treatment" c.treatment#c.pop_wutt "Populist Attitudes (Wuttke et al.) * Treatment" pre_cand "Candidate Evaluation t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Candidate Evaluation t_1") modelwidth (20) alignment (c), using "Tables/model_12wutt.rtf", replace

* Also not pre-registered: Alternative model specifications allowing for direct effect of the treatment, Tables 23 to 25 in the Appendix*

*M4 plus direct effects*

jackknife: regress z_post_issue c.treatment#c.direction treatment c.direction c.pre_cand c.pre_cand#c.direction c.pre_cand#c.treatment#c.direction pre_issue, cluster (issue)
estimates store m4_simple

esttab m4_simple, b(%5.3f) se r2 ar2 coeflabels(c.treatment#c.direction "Treatment * Direction" direction "Argument Direction" treatment "Treatment" c.pre_cand#c.direction "Candidate Support t_0 * Argument Direction"  c.pre_cand#c.treatment#c.direction "Candidate Support t_0 * Treatment * Direction" pre_issue "Issue Preferences t_0" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model4direct.rtf", replace

* M5 plus direct effects*

jackknife: regress z_post_issue c.treatment#c.direction c.direction c.att_strength c.att_strength#c.direction c.att_strength#c.treatment#c.direction treatment pre_issue, cluster (issue)
estimates store m5_simple

esttab m5_simple,b(%5.3f) se r2 ar2 coeflabels( c.treatment#c.direction "Treatment * Direction" direction "Argument Direction" c.att_strength#c.direction "Attitude Strength * Argument Direction"  c.att_strength#c.treatment#c.direction "Attitude Strength * Treatment * Direction" pre_issue "Issue Preferences t_0" treatment "treatment" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model5direct.rtf", replace

* Model 11 plus direct effects*

jackknife: regress z_post_issue c.treatment#c.direction c.pop_att  c.pop_att#c.direction c.treatment#c.pop_att#c.direction treatment pre_issue, cluster(issue)
estimates store m11_simple

esttab m11_simple,b(%5.3f) se r2 ar2 coeflabels(  c.treatment#c.direction "Treatment * Direction" c.pop_att#c.direction "Populist Attitudes * Direction"  c.treatment#c.pop_att#c.direction "Treatment * Direction  * Populist Attitudes" pre_issue "Issue Preferences t_0" treatment "Treatment" _cons "Intercept") nogap varwidth(30) mtitles ("Issue Preferences t_1") modelwidth (20) alignment (c), using "Tables/model11direct.rtf", replace

*END*
